pip の constraints の正しい用途
https://qiita.com/methane/items/11219ceedb44c0ebcc75
Pythonプロジェクトのディレクトリ構成に対してよりよいやり方を伝えるために書かれた
pip -r lockファイル とかけば良いところを無駄に一般人が知らなくてもいいオプションを利用して pip -r requirementsファイル -c lockファイル と書くやり方がベストプラクティスとして広まるのを防ぎたかったから記事にした (コメント)
pip freeze の結果は -r オプションに渡せばよくて -c オプションは不要 (-c オプションは知らなくても良い) (コメント)
(Environment Markers (PEP 508)に関係するコメントも)
バージョンロックの実現方法
requirements.txt
Flaskとだけ書く(バージョン指定なし)
pip install -r requirements.txt
pip freeze > requirements.lock
バージョン込みで出力されるので、新しい環境でも再現できる
ライブラリの更新
定期的に lock ファイルを更新しましょう。そのためには新しい仮想環境で lock ファイルを作り直すだけです。
感想:CIで自動化できそう!
利用バージョンのゆるい制限
requirements.txt 側に version specifier を書いておきましょう。
Version specifiers (PEP 440)
constraints.txt はこのようにして使うものなので、世の中の殆どの Python 製アプリの開発では使う必要がないでしょう。